package com.cy.pj.notice.web.pojo响应标准的设计;

/**
 * 所有的web项目，在设计响应数据时，都会有一个规范，比如说
 * 要响应给客户端什么数据，以什么格式进行响应。
 * 当前项目中，我们基于JsonResult对象封装服务端响应到客户端数据，
 * 对于这样的对象通常会包含三部分内容：
 * 1，状态码
 * 2，消息
 * 3，数据
 */
public class JsonResult {
    /**
     * 状态码
     */
    private Integer state = 1; //1表示ok,0表示异常
    /**
     * 状态信息
     */
    private String message = "ok";
    /**
     * 响应数据，一般为查询操作结果
     */
    private Object data;

    //写的构造方法--底层创建对象new的时候触发构造方法
    public JsonResult() {
    }    //含参构造前一定要加个无参构造

    public JsonResult(String message) {//new JsonResult("OK")
        this.message = message;
    }

    public JsonResult(Object data) { //new JsonResult("list")
        this.data = data;
    }

    //封装了异常信息--new JsonResult("exception")
    public JsonResult(Throwable e) { //Throwable-所有异常的父类
        this.state = 0;
        this.message = e.getMessage();
    }

    //alt+insert 快速生成相关方法(set,get,tostring...)
//**setter,getter方法的作用--可以解除私有属性，别的类也可以访问本类私有属性，不然就拿不到了
    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}
